/*
 * 使用接口解决循环依赖问题
 * 
 */
package Acquaintance;

/**
 * 使用接口解决循环依赖问题<br> 项目的主要业务对象接口<br> House<br> ==========<br>
 * 通过对House对象的操作来实现业务逻辑<br> House对象遵循IAHouse接口* <br>
 * 当其实例化后将以HashMap的形式存放到内存中<br> 以便实现对于该对象的快速操作<br> 与数据层的同步则具有一定延迟<br>
 * 因为该对象仅有管理员一人对其具有修改能力<br> 普通用户无修改权限<br> 所有在数据同步方面采取手动同步即可<br>
 *
 * <br> <br>层与层之间交换的是这一接口
 *
 * @author kocio
 */
public interface IAHouse extends IEObjectID {

    /**
     * 设置业务实体全局唯一ID
     *
     * @param objectID 业务实体ID
     */
    void setObjectID(String objectID);

    /**
     * 设置房屋拥有者
     *
     * @param houseHoster 房屋拥有者
     */
    void setHouseHoster(String houseHoster);

    /**
     * 设置房屋价格
     *
     * @param housePrice 房屋价格
     */
    void setHousePrice(int housePrice);

    /**
     * 设置房屋ID
     *
     * @param HID　房屋ID
     */
    void setHID(int HID);

    /**
     * 设置房屋面积大小
     *
     * @param Area 面积
     */
    void setArea(float Area);

    /**
     * 设置房屋朝向
     *
     * @param Arrow
     */
    void setArrow(String Arrow);

    /**
     * 设置房屋楼层
     *
     * @param Floor 楼层
     */
    void setFloor(int Floor);

    /**
     * 设置房屋单元地址
     *
     * @param Prmise 单元地址
     */
    void setPremise(String Prmise);

    /**
     * 设置小区所在市区
     *
     * @param Location 市区
     */
    void setLocation(String Location);

    /**
     * 设置房屋户型
     *
     * @param Type 户型
     */
    void setType(String Type);

    /**
     * 获取房屋ID
     *
     * @return HID
     */
    int getHID();

    /**
     * 获取房屋拥有者
     *
     * @return 拥有者用户名
     */
    String getHouseHoster();

    /**
     * 获取房屋价格
     *
     * @return 每平米价格
     */
    int getHousePrice();

    /**
     * 获取房屋总的面积数
     *
     * @return 面积（平方米）
     */
    float getArea();

    /**
     * 获得房屋户型
     *
     * @return 户型
     */
    String getType();

    /**
     * 获得房屋朝向
     *
     * @return 朝向
     */
    String getArrow();

    /**
     * 获得房屋所在市区
     *
     * @return 市区
     */
    String getLocation();

    /**
     * 获取房屋单元地址
     *
     * @return 单元地址
     */
    String getPremise();

    /**
     * 获取房屋所在楼层数
     *
     * @return ；楼层数
     */
    int getFloor();

    /**
     * 销毁程序
     */
    void finallize();

    /**
     * 判断房屋实体是否被修改过
     *
     * @return true 表示被修改过，需要更新到数据库<br> false 表示没有被修改 不需要更新到数据库
     */
    boolean isDirty();
}
